let svgVn = d3.select('#voronoi')
    .append('svg')
    .attr('height', '100%')
    .attr('width', '100%')


function voronoi() {
    // console.log(voiData);

    svgVn.selectAll("*").remove()

    GVn = svgVn.append('g')
    GVn.append('text')
        .text('未选择点、所选择点过少或所选点')
        .attr('font-size', 26)
        .attr('font-weight', 'bolder')
        .attr('transform', 'translate(10, 180)')
    GVn.append('text')
        .text('的数据在当前时间条件下为空')
        .attr('font-size', 26)
        .attr('font-weight', 'bolder')
        .attr('transform', 'translate(30, 210)')

    if (voiData != '') {
        Mds = voiData['MDS']
        use_sites = voiData['use_sites']
        max = 0, min = 100;
        for (let i = 0; i < Mds.length; i++) {
            temp1 = Math.max(Mds[i][0], Mds[i][1])
            temp2 = Math.min(Mds[i][0], Mds[i][1])
            max = Math.max(max, temp1)
            min = Math.min(min, temp2)
        }

        let scale = d3.scaleLinear().domain([min - 10, max + 10]).range([0, 370])
        let color = d3.schemePaired
        let data = []
        for (let i = 0; i < Mds.length; i++) {
            point = [scale(Mds[i][0]), scale(Mds[i][1])]
            data.push(point)
        }

        const delaunay = d3.Delaunay.from(data);
        var voi = delaunay.voronoi([0, 0, 408, 366])

        // console.log(use_sites);
        for (let i = 0; i < data.length; i++) {
            let g = svgVn.append('g')
                .append("path")
                .attr('fill', color[hier_res['hier'][i]])
                .attr("d", voi.renderCell(i))
                .on('click', function () {
                    // d3.selectAll('path')
                    // .attr('stroke', 'none')
                    console.log('hello')
                    d3.select("L_" + use_sites[i])
                    

                    
                    let label = hier_res['hier'][i];
                    let temp = [];
                    // console.log(label);
                    for (let j = 0; j < data.length; j++) {
                        if (hier_res['hier'][j] == label) {
                            temp.push(use_sites[j])
                            // console.log(temp);
                        }
                    }
                    selectVoi = temp;
                })

            g.append('title')
                .text(use_sites[i]);
        }


        svgVn.append('g').selectAll('circle')
            .data(data)
            .enter()
            .append('circle')
            .attr('cx', function (d, i) {
                return d[0];
            })
            .attr('cy', function (d, i) {
                return d[1];
            })
            .attr('r', 5)
            .attr('fill', 'black')
            .attr('id', function (d, i) {
                return use_sites[i];
            })
    }

}

function voronoiClear() {
    svgVn.selectAll("*").remove()

    GVn = svgVn.append('g')
    GVn.append('text')
        .text('未选择点、所选择点过少或所选点')
        .attr('font-size', 26)
        .attr('font-weight', 'bolder')
        .attr('transform', 'translate(10, 180)')
    GVn.append('text')
        .text('的数据在当前时间条件下为空')
        .attr('font-size', 26)
        .attr('font-weight', 'bolder')
        .attr('transform', 'translate(30, 210)')
}